package empleadoAdministrativo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;

import misc.Logica;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class AdminRequisito_GUI extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JButton btnNuevo;
	private JButton btnAceptar;
	private JButton btnCancelar;
	private JScrollPane jScrollPane1;
	private JTable tblRequisitos;
	private JButton btnEliminar;
	private JButton btnModificar;
	private DefaultTableModel modeloRequisito;

	
	private Empleado_GUI padre;
	private NuevoRequisito_GUI nuevo;
	private ModificarRequisito_GUI modificar;
	private Logica logica;
	
	/**
	* Auto-generated main method to display this JFrame
	*/
	
	public AdminRequisito_GUI(Empleado_GUI padre, Logica logica) {
		super();
		initGUI();
		this.padre=padre;
		this.logica=logica;
		mostrarRequisitos();
	}
	
	
	
	
	private void salir(){
		this.setVisible(false);
		padre.setVisible(true);
	}
	
	
	private void initGUI() {
		try {
			this.addWindowListener(new WindowAdapter() {
		          public void windowClosing(WindowEvent e) {
         salir();
		          }
		      });
			setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Administrar Requisitos");
			{
				btnNuevo = new JButton();
				getContentPane().add(btnNuevo);
				btnNuevo.setText("Nuevo");
				btnNuevo.setBounds(27, 18, 81, 23);
				btnNuevo.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnNuevoActionPerformed(evt);
					}
				});
			}
			{
				btnModificar = new JButton();
				getContentPane().add(btnModificar);
				btnModificar.setText("Modificar");
				btnModificar.setBounds(191, 18, 81, 23);
				btnModificar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnModificarActionPerformed(evt);
					}
				});
			}
			{
				btnEliminar = new JButton();
				getContentPane().add(btnEliminar);
				btnEliminar.setText("Eliminar");
				btnEliminar.setBounds(358, 18, 79, 23);
				btnEliminar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnEliminarActionPerformed(evt);
					}
				});
			}
			{
				btnAceptar = new JButton();
				getContentPane().add(btnAceptar);
				btnAceptar.setText("Aceptar");
				btnAceptar.setBounds(116, 328, 93, 23);
				btnAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnAceptarActionPerformed(evt);
					}
				});
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(272, 328, 86, 23);
				btnCancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						btnCancelarActionPerformed(evt);
					}
				});
			}
			{
				jScrollPane1 = new JScrollPane();
				getContentPane().add(jScrollPane1);
				jScrollPane1.setBounds(18, 57, 449, 259);
				{
					
					
					tblRequisitos = new JTable();
					jScrollPane1.setViewportView(tblRequisitos);
					modeloRequisito = new DefaultTableModel();
					modeloRequisito.addColumn("Codigo");
					modeloRequisito.addColumn("Requisito");
					tblRequisitos.setModel(modeloRequisito);
					tblRequisitos.setBounds(279, 173, 158, 120);
					tblRequisitos.setBorder(BorderFactory.createTitledBorder(""));
					tblRequisitos.setPreferredSize(new java.awt.Dimension(446, 256));
				}
			}
			pack();
			setSize(500, 400);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

	 
	
	public void mostrarRequisitos() {
		ResultSet rs = logica.listadoRequisitos();
		logica.limpiar(modeloRequisito);
		
		try {
			while (rs.next())
			{
			   // Se crea un array que será una de las filas de la tabla. 
			   Object [] fila = new Object[2]; // Hay 2 columnas en la tabla

			   // Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
			   for (int i=0;i<2;i++) if (i==1) fila[i] =logica.capitalizar((String) rs.getObject(i+1)); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
			   else fila[i] = rs.getObject(i+1);

			   // Se añade al modelo la fila completa.
			   modeloRequisito.addRow(fila); 
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
       
	}
	
	
	
	
	
	
	
	
	private Object GetData(JTable table, int row_index, int col_index){
	    return table.getModel().getValueAt(row_index, col_index);
	  }  
	
	private void btnCancelarActionPerformed(ActionEvent evt) {
		salir();
	}
	
	private void btnAceptarActionPerformed(ActionEvent evt) {
		salir();
	}
	
	private void btnNuevoActionPerformed(ActionEvent evt) {
		if (nuevo==null)
			nuevo= new NuevoRequisito_GUI(this,logica);
		nuevo.setLocationRelativeTo(this);
		nuevo.setProxID();
		nuevo.setVisible(true);
		
	}
	
	private void btnEliminarActionPerformed(ActionEvent evt) {
	eliminarRequisito();
	}

	
	private void eliminarRequisito() {
		int fila=tblRequisitos.getSelectedRow();
		int codigo;
		if (fila!=-1) { //si hay algun elemento seleccionado
			 int respuesta = JOptionPane.showConfirmDialog(null, "¿Confirma la eliminación?", "Eliminar Requisito",
                     JOptionPane.YES_NO_OPTION);
				
				 //Confirmacion afirmativa, sino volvemos a la pantalla
				 if(respuesta==JOptionPane.YES_OPTION){
					  Object obj = logica.getData(tblRequisitos, fila,0);
					  codigo=Integer.parseInt(obj.toString());
						
					 	logica.cancelarRequisito(codigo);
				 }
			
			mostrarRequisitos();
			
			
		}
	}
	
	private void btnModificarActionPerformed(ActionEvent evt) {
		int codigo;
		int fila=tblRequisitos.getSelectedRow();
		if (fila!=-1) {
		if (modificar==null)
			modificar= new ModificarRequisito_GUI(this,logica);
		modificar.setLocationRelativeTo(this);
		modificar.setVisible(true);
		 Object obj = logica.getData(tblRequisitos, fila,0);
		  codigo=Integer.parseInt(obj.toString());
		modificar.setCodigo(codigo);
	}
	}
}
